本节讲解如何在客户化插件中,为产品插件内的实体实现实体属性的扩展。
场景
当领域工程的产品插件开发并打包完成后,其中的属性往往不满足应用工程(项目)的需要。这时,应用工程的开发团队往往需要为产品插件中的实体添加新的实体属性。
扩展新属性
下面代码示例如何为 Transaction 类型添加一个 string BranchName 的属性:
[CompiledPropertyDeclarer]
public static class TransactionExt
{
#region string BranchName (分支名称)
/// <summary>
/// 分支名称 扩展属性。
/// </summary>
public static readonly Property<string> BranchNameProperty =
P<Transaction>.RegisterExtension<string>("BranchName", typeof(TransactionExt));
/// <summary>
/// 获取 分支名称 属性的值。
/// </summary>
public static string GetBranchName(this Transaction me)
{
return me.GetProperty(BranchNameProperty);
}
/// <summary>
/// 设置 分支名称 属性的值。
/// </summary>
public static void SetBranchName(this Transaction me, string value)
{
me.SetProperty(BranchNameProperty, value);
}
#endregion
}
使用方法:
var entity = new Transaction();
entity.CustomerName = "customerName";//一般属性
entity.SetBranchName("branchName");//扩展属性使用方法:使用扩展方法来获取或设置属性的值
代码段
RafySDK 中代码段来辅助开发者生成上面的扩展属性代码:RafyPropertyExtension。
关于代码段,见:代码段。